﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using BatallaNavalgo;

namespace BatallaNavalgo.Tests
{
    [TestClass]
    public class TestFragmentoDeNave
    {
        int[] posicion;
        int resistencia;
        FragmentoDeNave fragmento;

        public TestFragmentoDeNave()
        {
            posicion = new int[2];
            resistencia = 1;
            posicion[0] = 0;
            posicion[1] = 1;
            fragmento = new FragmentoDeNave(posicion, resistencia,new Lancha(new int[2] {0,0},new int[2] {0,0},1,new Tablero()));
        }

        [TestMethod]
        public void TestFragmentoDeNaveDebeCambiarDePosicion()
        {
            posicion[0] = 1;
            posicion[1] = 1;
            fragmento.Posicion = posicion;
            Assert.AreEqual(posicion[0], fragmento.Posicion[0]);
            Assert.AreEqual(posicion[1], fragmento.Posicion[1]);
        }

        [TestMethod]
        public void TestFragmentoDeNaveEstaDestruido()
        {
            Assert.IsFalse(fragmento.EstaDestruido());
        }

        [TestMethod]
        public void TestFragmentoDeNaveRecibeImpactoYPasaAEstarDestruido()
        {
            fragmento.RecibirImpacto();
            Assert.IsTrue(fragmento.EstaDestruido());
        }
        [TestMethod]
        public void TestFragmentoDeNaveNoSeDestruyeConUnImpactoSiResistenciaEsMayorAUno()
        {
            int resistenciaMayor = 2;
            FragmentoDeNave fragmentoResistente = new FragmentoDeNave(posicion, resistenciaMayor, new Lancha(new int[2] { 0, 0 }, new int[2] { 0, 0 }, 1, new Tablero()));
            Assert.IsFalse(fragmento.EstaDestruido());
        }


    }

}
